1. Field of the Invention
The present invention generally relates to techniques for improving performance in computer systems. More specifically, the present invention relates to a system and a method for automatically determining responsiveness and/or throughput requirements at runtime to enable dynamic tuning of a virtual machine to adapt to usage conditions.
2. Related Art
The Java™ environment has become a very popular software platform for memory-constrained devices, such as wireless devices. For example, Motorola, Nokia, NTT DoCoMo, RIM, Siemens, and many other key players in the wireless device industry have shipped a large number of Java-enabled devices. In fact, hundreds of millions of Java-enabled mobile phones have been shipped during the past few years.
The Java™ environment provides a virtual machine, which presents a standard virtual environment for different device platforms that allows applications to be written once and then run on a variety of devices, including wireless devices as well as desktop and server computers. The performance of virtual machine (VM) implementations can typically be tuned to be either responsive, with low latency, or to provide high-throughput. Since responsiveness and high-throughput are seldom complementary, virtual machines often allow designers and/or users to specify implementation parameters that affect the tradeoff between responsiveness and throughput in the virtual machine implementation. However, virtual machine technology is quite complex, and consequently this tuning may involve an iterative, interactive process. In addition, because new applications are often dynamically loaded and introduced into the system after initial system deployment, and because application needs are dynamic in nature, most users opt to not tune the system, which results in less-than-optimal performance.
Hence, what is needed is a system and a method for automatically determining responsiveness and/or throughput requirements at runtime to enable dynamic tuning of a virtual machine to adapt to usage conditions.